今天我們要介紹的是隨機森林,所謂的隨機森林就是指將多個決策樹組合而成並且加入隨機的分配去訓練資料,而所有的決策樹都是獨立的,簡單來說每個決策樹最後的結果都會是互相獨立的,而隨機森林就像是多數決,也就是多顆決策樹的答案會是隨機森林的答案。
我們將用iris的資料集去做簡單的分析。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, confusion_matrix
首先我們先將需要用到的套件載入。
pip3 install 套件名稱
如果有缺少的套件則可以在終端機上下載缺少的套件。
data = datasets.load_iris()
x = pd.DataFrame(data['data'],columns = data["feature_names"])
print(x)
y = pd.DataFrame(data["target"],columns = ["tar"])
print(y)
data_iris = pd.concat([x,y], axis = 1)
print(data_iris)
data_iris = data_iris[["sepal length (cm)","petal length (cm)","tar"]]
print(data_iris)
data_iris = data_iris[data_iris['tar'].isin([0,1])]
print(data_iris)
接下來我們將iris資料集載入,並將資料合併。
X_train, X_test, Y_train, Y_test = train_test_split(data_iris[["sepal length (cm)","petal length (cm)"]],data_iris["tar"],test_size=0.3, random_state=0)
接下來我們將資料分成測試與訓練集。
t = 5
tra = RandomForestClassifier(max_depth = 2, n_estimators = t,max_features = 1)
tra.fit(X_train , Y_train)
predict = tra.predict(X_test)
接下來我們訓練隨機森林的模型。
print(confusion_matrix(Y_test,predict))
print(classification_report(Y_test,predict))
接下來我們將用模型預測結果。
以上就是簡易的隨機森林做法。